package com.mlh.binarytree;

import java.util.ArrayList;
import java.util.Deque;
import java.util.LinkedList;
import java.util.List;

/**
 * @author 缪林辉
 * @date 2024/3/29 11:03
 * @DESCRIPTION
 */
// 给定二叉搜索树（BST）的根节点 root 和一个整数值 val。
// 你需要在 BST 中找到节点值等于 val 的节点。
// 返回以该节点为根的子树。 如果节点不存在，则返回 null 。
public class SearchBST {
    //在用递归方法时，一定要想好方法有没有返回值，返回什么？
    //这个还需要考虑一个递归代码里面，有进2层递归还是一层递归，这样会影响返回值的处理
    public TreeNode method1(TreeNode root, int val) {
        return recursion(root,val);
    }
    //这个递归是可以和上面方法合成一个方法的，结构都一样，但是为了清晰一点就没有合并了
    public TreeNode recursion(TreeNode node, int val){
        if(node==null){
            return null;
        }
        if(node.val==val){
            return node;
        }
        if(node.val>val){
            return recursion(node.left,val);
        }else{
            return recursion(node.right,val);
        }
    }
}
